Resource management within microprocessors or microprocessor systems may relate to, for example, managing access to memory, files, bus interfaces, and the like. In some prior art microprocessors or microprocessor systems, a request that cannot be served due to resource unavailability, resource contention and/or data consistency reasons may be rejected and reissued in a subsequent cycle. Moreover, the same request may be rejected and reissued repeatedly, e.g., many times. Such repeated reissuing and rejection of the request may result in wasted power, performance, or cache bandwidth.
Some existing resource management techniques, such as memory allocation by the operating system (OS) are overly time-consuming due to their complexity, and may not be feasible in an environment where resource management decisions need to be made in a limited, small number of cycles, or in the same cycle. For example, some prior art resource management techniques may not provide efficient management between different agents that need access to a common bus, locking mechanisms where the lock can be either open or taken, and the like.
It will be appreciated that for simplicity and clarity of illustration, elements shown in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, where considered appropriate, reference numerals may be repeated among the figures to indicate corresponding or analogous elements.